Montereyな14インチMacBook Proを擬似解像度1920×1200相当で使う設定
はじめに
清水です。先日、会社からMacBook Pro (14インチ, 2021)が支給されました。これまで使ってきた13インチMacBook Pro/MacBook Airは擬似解像度1920x1200で使用してきたのですが(以下ブログエントリ参照)、この14インチMacBook Proでも1920x1200相当の擬似解像度になるよう設定をしてみたいと思います。 *1
- M1でBig SurなMacBook Airを疑似解像度1920×1200で使う設定 | DevelopersIO
- 13インチのMacBook Proを疑似解像度1920×1200で使う設定 | DevelopersIO
14インチMacBook Pro、これまでとの違いとしてApple Silicon (M1 Max)搭載だったり、masOS Montereyだったりという点もありますが、一番大きな点としては画面サイズなどディスプレイまわりが変わったことが挙げられます。14インチというそのインチ数が示すとおり、ディスプレイの物理的なサイズがこれまでの13.3インチから14.2インチへと拡大されました。それに伴いピクセル数もこれまでの2560x1600から3024x1964に増大しています。そして何より、ディスプレイのアスペクト比がこれまでの16:10から変更になり、画面上部にはいわゆる「ノッチ」がついてメニューバーのサイズ(高さ)が大きくなりました。
13インチのMacBook Pro/MacBook Airに擬似解像度1920x1200を追加する際には、大きく以下の手順で設定をしていました。
- DisplayVendorIDとDisplayProductIDを確認
- 設定ファイルのscale-resolutionsに追加する擬似解像度情報を追記
14インチMacBook Proを対象とした場合、まずは幅1920に対応した擬似解像度を求めるところからはじめました。ついで、DisplayVendorIDとDisplayProductIDを確認します。そして擬似解像度情報を対象の設定ファイルに追記するわけですが、この際に擬似解像度に対応する値を求める必要がありました。
以下、それぞれの手順をまとめていきます。過去の13インチMacBook Pro/MacBook Airを対象としたエントリと同じく、本エントリで紹介する方法はAppleより公式に公開されているものではありません。実際に設定する場合は自己責任でお願いいたします。
14インチMacBook Proの画面解像度
まずは14インチMacBook Proの画面解像度について確認しておきましょう。タイトルに「1920x1200相当」とあるように、正確な「1920x1200」解像度は14インチMacBook Proには適していません。ネイティブ解像度が「3,024 x 1,964ピクセル」と、これまでの16:10から変わってしまったからです。
このネイティブ解像度の3024x1964ピクセル、そして設定できる擬似解像度の比率はアスペクト比として77:50や9:5.85などと言われています。
(ノッチがあるぶんを、うまくアスペクト比で調整しているのかなと思います。なお上記URLでは、アスペクト比を16:10に設定することでノッチを隠すことを、サードパーティ製ディスプレイユーティリティを利用して実現することを案内しています。しかし本エントリではこの「ノッチを隠す」ことはせずにノッチとメニューバーの重なりを活かした解像度設定をしてみます。 *2 )
アスペクト比について実際に確認してみましょう。システム環境設定のディスプレイを開き、解像度で「サイズ調整」を選択します。デフォルトとしては擬似解像度「1512 x 982」となります。
そのほか、標準で設定できる擬似解像度を5種類を整理すると以下のようになります。(擬似解像度の大きい順に並べています。)
擬似解像度 | |
---|---|
スペースを拡大 | 1800 x 1169 |
デフォルト | 1512 x 982 |
1352 x 878 | |
1147 x 745 | |
文字を拡大 | 1024 x 665 |
さて、今回は擬似解像度で幅を1920にあわせることを目的としています。この場合の高さを求め、設定する擬似解像度を決めておきましょう。
擬似解像度は77:50の比率とのことでした。まずはこれを確認しておきます。横幅が決まっているとなると、高さは(幅×50)÷77
で計算できますね。念のため、設定できるそれぞれの擬似解像度についてこの点を確認しておきます。
擬似解像度 | 幅 | 高さ((幅×50)÷77) |
---|---|---|
1800 x 1169 | 1800 | 1168.83 |
1512 x 982 | 1512 | 981.81 |
1352 x 878 | 1352 | 877.92 |
1147 x 745 | 1147 | 744.80 |
1024 x 665 | 1024 | 664.93 |
小数点以下を四捨五入(繰り上げ)すると設定できる高さの値と一致します。
では幅を1920にしたケースを確認してみましょう。 高さを(幅×50)÷77
で求めると1246.75となるので、1247とすれば良さそうです。
幅 | 高さ((幅×50)÷77) | 擬似解像度 |
---|---|---|
1920 | 1246.75 | 1920 x 1247 |
ということで、擬似解像度を 1920 x 1247
にするよう設定を行っていきます。
DisplayVendorIDとDisplayProductIDの確認
設定する擬似解像度について、「1920x1247」にすれば良さそうなことが確認できました。続いて、設定対象のファイルの特定に必要なDisplayVendorIDとDisplayProductIDを確認していきます。
ioregコマンドはDisplayのID確認に使用できない
まずは編集対象となるシステムファイル(設定ファイル)を特定するため、DisplayVendorIDとDisplayProductIDを確認します。IntelプロセッサのMacBook Proではioreg
コマンドでこの情報が取得できていました。Apple Siliconな14インチMacBook Proではどうでしょうか。
% ioreg -lw0 | grep IODisplayPrefsKey % ioreg -lw0 | grep DisplayVendorID % ioreg -lw0 | grep DisplayProductID %
M1なMacBook Airと同様、ioreg
コマンドではDisplayVendorIDならびにDisplayProductIDは取得できませんね。
ColorSyncユーティリティで製造元と機種名を確認する
ioreg
コマンドでは確認できないため、M1なMacBook Airのときと同様にColorSyncユーティリティから確認してみます。このColorSyncユーティリティ、Big Surのときはシステム環境設定のディスプレイの設定項目から開くことができましたが、Montereyではこの項目がなくなってしまっています。
ですがColorSyncユーティリティ自体はmacOSにインストールされています。「アプリケーション」フォルダから「ユーティリティ」フォルダをたどり、ColorSyncユーティリティ.appをクリックして起動します。
ColorSyncユーティリティ起動後、「装置」の項目を選択します。ディスプレイの項目を展開して現れる「カラーLCD」をクリックします。(「ディスプレイ」の左側の「>」をクリックすると展開されます。)プロファイル情報が表示されますので、現在のプロファイルの[開く]ボタンを押下します。
以下のような画面(プロファイルの詳細画面?)が表示されます。画面上段のリストの部分を下にスクロールして「#: 17」、「タグ: 'mmod'」という項目を選択します。すると製造元、機種などの情報が表示されます。
この画面の製造元がDisplayVendorID、機種がDisplayProductIDに該当します。つまり今回設定を進めている私のMacBook Pro (14インチ, 2021)では、DisplayVendorID-610
、DisplayProductID-a04e
となります。(こちらはあくまで私の環境での値になり、実際の設定対象により変わる可能性があります。)
変更前の設定ファイルの確認
DisplayVendorIDとDisplayProductIDが確認できました。続いて、/System/Library/Displays/Contents/Resources/Overrides
フォルダに、このDisplayVendorIDとDisplayProductIDに対応する設定ファイル(DisplayVendorID-610/DisplayProductID-a04e
)が存在しているか確認してみましょう。
M1 MacBook Airのときはこのファイルがなかったわけですが、14インチMacBook Proの場合はどうでしょうか。lsコマンドの結果をgrepしてみると、、ありました!
% ls /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610 | grep a04e DisplayProductID-a04e DisplayProductID-a04e-c1.tiff DisplayProductID-a04e-c2.tiff
ファイルの中身は以下となっていました。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>DisplayVendorID</key> <integer>1552</integer> <key>DisplayProductID</key> <integer>41038</integer> <key>DisplayProductName</key> <string>Color LCD</string> <key>IOGFlags</key> <integer>4</integer> <key>scale-resolutions</key> <array> <data>AAAOEAAACSI=</data> <data>AAAL0AAAB6w=</data> <data>AAAKkAAABtw=</data> <data>AAAI9gAABdI=</data> <data>AAAIAAAABTI=</data> <data>AAAKAAAABkAAAAAB</data> <data>AAAHgAAABLAAAAAB</data> </array> <key>display-refresh-rate-policy</key> <data>AAAAAAAAAAE=</data> </dict> </plist>
これまでと同様、「<key>scale-resolutions</key>」のあとに続く「<array>」のあとに「<data>」で追加すれば良さそうです。
設定ファイルに追記する値について
設定を追記する対象のシステムファイルが確認できました。さてこの設定ファイルに追記する値です、これまで擬似解像度1920x1200に設定する際はAAAPAAAACWAAAAAB
という値を<data>タグで囲んで追記していました。今回は擬似解像度1920x1247に設定するため、この値を変更しければなりません。
このぱっとみただけではよくわからない英字の羅列(なんかAが多いですよね)、どのように決めていけばいいのでしょうか。調べてみると、どうやらこの値は指定する解像度を16進数に変換してBase64エンコーディングしたもののようです。
実際にこのAAAPAAAACWAAAAAB
という値は3840x2400という解像度を示しているそうです。擬似解像度1920x1200とは異なりますが、MacのRetinaディスプレイでは内部的に倍の解像度で処理しているため(これは例えばスクリーンショットの画像サイズが倍になっていることや、システムレポートでディスプレイ情報を確認した際の解像度とUI擬似解像度の関係から確認できます)、この指定する値も倍の解像度になっている、と理解しています。
指定した解像度に対応するscale-resolutionsの値を求めるには、以下のサイトを使うのが良さそうです。(実際、16進に変換してBase64エンコーディングしている、としながらも桁数が12桁だったり16桁だったりの違いはきちんと把握できていません。)
冒頭で14インチMacBook Proでは、デフォルト(設定ファイルを変更しない状態)で5種類の擬似解像度が設定できることを確認しました。この擬似解像度の値をそれぞれ倍にして上記のサイトに入力してみると、先ほど確認したDisplay PropertyListファイルのscale-resolutionsの値と一致することが確認できました。(以下スクリーンショットでSacle Resolutionsの以外の箇所はデフォルトの値となっています。)
設定ファイルの該当箇所と対応させると以下のようなぐあいです。
<data>AAAOEAAACSI=</data> <!-- 3600x2338、擬似解像度1800x1169に対応 --> <data>AAAL0AAAB6w=</data> <!-- 3024x1964、擬似解像度1512x982に対応 --> <data>AAAKkAAABtw=</data> <!-- 2704x1756、擬似解像度1352x878に対応 --> <data>AAAI9gAABdI=</data> <!-- 2294x1490、擬似解像度1147x745に対応 --> <data>AAAIAAAABTI=</data> <!-- 2048x1330、擬似解像度1024x665に対応 -->
これから、上記のスクリーンショット中にすでに記載していますが、擬似解像度1920x1247を設定するには先のサイトでResolution 3840x2494 (HiDPIオフ)を指定した AAAPAAAACb4=
を追加すれば良さそうです。
なお設定ファイル中<data>タグ内容の最後2つについて、以下のようにHiDPIを有効にした2560x1600ならびに1920x1200解像度のようだ(途中まで値が一致している)ということはわかったのですが、具体的なところはわかりませんでした。
<data>AAAKAAAABkAAAAAB</data> <!-- HiDPI有効の2560x1600 ?? --> <data>AAAHgAAABLAAAAAB</data> <!-- HiDPI有効の1920x1200 ?? -->
実際の設定ファイルへの追記
設定ファイルに追記するSacle Resolutionsの値が確認できました。この値を設定ファイルに実際に記載していきます。Big Surのときから/System/Library
へ書き込みができなくなり、代わりに/Libary
の同等の場所へファイルを作成する方法が採られていますので、今回もそれにならいます。
今回、追記するファイル(の元ファイル)は以下になりますので、
- /System/Library /Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a04e
代わりに以下のファイルを編集することとなります。
- /Library /Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a04e
自分の環境を確認したところ/Libraryディレクトリ配下にDisplayディレクトリがなかったため、Display配下のディレクトリの作成から進めます。mkdir -p
コマンドでDisplays/Contents/Resources/Overrides/DisplayVendorID-610ディレクトリまで作成します。
% cd /Library % ls -l | grep Displays % sudo mkdir -p Displays/Contents/Resources/Overrides/DisplayVendorID-610 % ls -l | grep Displays drwxr-xr-x 3 root wheel 96 7 27 17:38 Displays/
ディレクトリ作成後、ベースとなる/System/Library配下のDisplayVendorID-610/DisplayProductID-a04eファイルを/Library配下にコピーします。
% sudo cp -p /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a04e /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/
コピーしたファイル(/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a04e)をお好みのエディタで編集します。編集の際には管理者権限が必要です。
% sudo emacs /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a04e
編集内容ですが、先ほど確認した擬似解像度1920x1247に対応するAAAPAAAACb4=
を追記するほか、5つ並んでいる「システム環境設定 > ディスプレイ」で確認できる解像度設定のうちの1つ、擬似解像度1024x665に対応するものを削除します。削除しないでAAAPAAAACb4=
を追記するだけの状態でも試してみたのですが、「システム環境設定 > ディスプレイ」の設定項目に1920x1247が表示されませんでした。おそらくスペースの都合上、5つ以上は設定項目に現れないのかな、と推測して言います。またAAAPAAAACb4=
の値については、ベースとなる設定ファイルの記載順序にあわせて先頭に記載しました。(擬似解像度が高いものから順に並んでいるようだったので。)
<key>scale-resolutions</key> <array> <!--追加--> <data>AAAPAAAACbo=</data> <!-- 3800x2494、擬似解像度1920x1247に対応 --> <data>AAAOEAAACSI=</data> <!-- 3600x2338、擬似解像度1800x1169に対応 --> <data>AAAL0AAAB6w=</data> <!-- 3024x1964、擬似解像度1512x982に対応 --> <data>AAAKkAAABtw=</data> <!-- 2704x1756、擬似解像度1352x878に対応 --> <data>AAAI9gAABdI=</data> <!-- 2294x1490、擬似解像度1147x745に対応 --> <!--削除--> <data>AAAIAAAABTI=</data> <!-- 2048x1330、擬似解像度1024x665に対応 --> <data>AAAKAAAABkAAAAAB</data> <!-- HiDPI有効の2560x1600 ?? --> <data>AAAHgAAABLAAAAAB</data> <!-- HiDPI有効の1920x1200 ?? --> </array>
実際のDisplayVendorID-610/DisplayProductID-a04eファイルは以下のようになります。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>DisplayVendorID</key> <integer>1552</integer> <key>DisplayProductID</key> <integer>41038</integer> <key>DisplayProductName</key> <string>Color LCD</string> <key>IOGFlags</key> <integer>4</integer> <key>scale-resolutions</key> <array> <data>AAAPAAAACbo=</data> <data>AAAOEAAACSI=</data> <data>AAAL0AAAB6w=</data> <data>AAAKkAAABtw=</data> <data>AAAI9gAABdI=</data> <data>AAAKAAAABkAAAAAB</data> <data>AAAHgAAABLAAAAAB</data> </array> <key>display-refresh-rate-policy</key> <data>AAAAAAAAAAE=</data> </dict> </plist>
macOSを再起動して実際に1920x1247擬似解像度を設定する
設定ファイルを編集したたら、macOSを再起動して「システム環境設定 > ディスプレイ」を開きます。「サイズ調整」の一番右側、最も「スペースを拡大」のところに「擬似解像度: 1920 x 1247」の項目が追加されていますね!
この「擬似解像度: 1920 x 1247」を選択すると、実際に1920x1247の擬似解像度に設定ができます!設定した際の画面全体のスクリーンショットが下記となります。
まとめ
Apple Siliconを搭載した14インチMacBook Proに幅1920の擬似解像度を設定してみました。画面のアスペクト比がこれまでの16:10から77:50に変わったことから、まずは幅1920に対応する高さを求め擬似解像度「1920x1247」を決めました。続いて設定ファイルを特定するためDisplayVendorIDとDisplayProductIDをColorSyncユーティリティを使って確認しました。設定ファイルに記載する値については擬似解像度「1920x1247」であることから、倍にした値をもとにAAAPAAAACb4=
としました。この値を/Library配下に設定ファイルとして追記、また擬似解像度の設定情報を1つ削除することで、システム環境設定のディスプレイから「1920x1247」に設定変更ができるようになりました。
14インチMacBook Proでは、これまでの13インチから画面サイズも大きくなり、標準で設定できる擬似解像度も最大(最も「スペースを拡大」)が1680x1050から1800x1169と幅は120大きくなりました。しかしやはり、いつも使っている幅1920にあわせたいものです。ノッチがあることや、M1 MacBook Airではなかなか設定に苦労したことから、この120の差は大きいのかな、などと思っていたのですが、なんとか「1920x1200」相当である「1920x1247」に設定できました。これで今後も快適なMacライフが満喫できそうです。
おまけ: メニューバーのサイズについて
14インチMacBook Pro、内蔵ディスプレイに表示されているメニューバーの高さが(ノッチが追加されたこともあってか)これまでよりも大きくなっています。このサイズを興味本位でまとめてみました。Command+Shfit+4でメニューバーのスクリーンショットをとり、その画像の高さを÷2したものをメニューバーの高さとしています。
擬似解像度 | メニューバーの高さ | (擬似解像度 - メニューバーの高さ) |
---|---|---|
1920 x 1247 | 46 | 1201 |
1800 x 1169 | 43 | 1126 |
1512 x 982 | 37 | 945 |
1352 x 878 | 34 | 844 |
13インチMacBook Pro/MacBook Airや外付けディスプレイでは、メニューバーのサイズは23ピクセル(Big Sur以降)もしくは22ピクセル(Catalina以前)であったかと思います。14インチMacBook Proでも外付けディスプレイ(フルHD、1920x1080解像度)のメニューバーのサイズは23ピクセルでした。内蔵ディスプレイだけ、解像度に応じてメニューバーのサイズが変わるぐあいです。なおいずれの場合もうまく「ノッチ」の部分がメニューバーにおさまるようになっていました。
あわせて読みたい
13インチのMacBook Proを疑似解像度1920×1200で使う設定 | DevelopersIO
Macに外部ディスプレイを接続して上下左右にアンダースキャンが発生したときに試してみたいこと | DevelopersIO
MacでFull HDの外部ディスプレイにWQHDまたは4Kの解像度で表示する設定 | DevelopersIO
M1でBig SurなMacBook Airを疑似解像度1920×1200で使う設定 | DevelopersIO